package club.terroir.client.producteur;



import club.terroir.client.Style;
import club.terroir.client.produit.FolderFactory;
import club.terroir.client.produit.Produit;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;

public class AchatCreateGUI extends VerticalPanel implements Produit.SelectProduitListener{
	
	public static AchatCreateGUI instance = new AchatCreateGUI();
	Button buttonNouveauClient = new Button("Sauvegarder");
	Button buttonClear= new Button("Clear");
	private Label labelTitreProduitSelected= new Label("");
	private HorizontalPanel hPanelGlobal = new HorizontalPanel();
	private VerticalPanel vPanelProduitsSelected = new VerticalPanel();
	Label labelTitre = new Label("Nouvel achat");
	CheckBox checkBoxCreationContact = new CheckBox("Nouveau Contact");
	
	VerticalPanel vPanelContact = new VerticalPanel();
	int debug;

	public AchatCreateGUI() {
		super();
		checkBoxCreationContact.addClickHandler(new ClickHandler() {
			@Override
			public void onClick(ClickEvent event) {
				boolean creationClient = checkBoxCreationContact.getValue();
				System.out.println("checkBoxCreationContact "+creationClient);
				setCreationForm(creationClient);
			}
		});
		labelTitre.setStyleName(Style.Titre);
	    vPanelContact.add(ContactUpdateGUI.instance);
	    
		vPanelProduitsSelected.add(labelTitreProduitSelected);
		vPanelProduitsSelected.setStyleName(Style.SousPanel);
		VerticalPanel vPanelContact0 = new VerticalPanel();
		vPanelContact0.setStyleName(Style.SousPanel);
		vPanelContact0.add(this.checkBoxCreationContact);
		vPanelContact0.add(vPanelContact);
		VerticalPanel vPanelProduitTree = new VerticalPanel();
		vPanelProduitTree.setStyleName(Style.SousPanel);
		vPanelProduitTree.add(new Label("Selectionner un produit:"));		
		vPanelProduitTree.add(getTreeSelectAchat());
		hPanelGlobal.add(vPanelContact0);
		hPanelGlobal.add(vPanelProduitTree);
		hPanelGlobal.add(this.vPanelProduitsSelected);
		
		Panel panelButtons = new HorizontalPanel();
		panelButtons.setStyleName(Style.buttonMenu);
		buttonNouveauClient.setStyleName(Style.buttonMenu);
		panelButtons.add(buttonNouveauClient);
		panelButtons.add(buttonClear);
		
		this.add(labelTitre);		
		this.add(this.hPanelGlobal);		
		this.add(panelButtons);
		
		this.buttonClear.addClickHandler(new ClickHandler() {			
			@Override
			public void onClick(ClickEvent event) {
				System.out.println("ClearField No implemented ");
			}
		});
	}
	
	

	private Widget getTreeSelectAchat() {
		
		return  FolderFactory.instance.getTreeProduitSelec();
		
	}


	@Override
	public void select(Produit produiSelected) {
		this.labelTitreProduitSelected.setText("Produits Sélectionnés : ");
		this.vPanelProduitsSelected.add(produiSelected.getPanelAchat());
	}


	@Override
	public void removeAchat(Widget produiSelected) {
		this.vPanelProduitsSelected.remove(produiSelected);
	}


	public void setContactInfo(Contact contact) {
		
		System.out.println("AchatCreateGUI.setContactInfo "+contact);
		ContactUpdateGUI.instance.setContactInfo(contact);
		this.setCreationForm(false);
	}
	
	public void setCreationForm(boolean isCreationContact){
		if(isCreationContact){
			this.vPanelContact.remove(0);
			this.vPanelContact.add(ContactCreateGUI.instance);
			
		}else {
			this.vPanelContact.remove(0);
			this.vPanelContact.add(ContactUpdateGUI.instance);
		}
		this.checkBoxCreationContact.setValue(isCreationContact);
	}
	
}
